• Empleos
  • Sobre nosotros
  • profesionales
    • Inicio
    • Empleos
    • Cursos y retos
  • empresas
    • Inicio
    • Publicar vacante
    • Nuestro proceso
    • Precios
    • Evaluaciones
    • Nómina
    • Blog
    • Comercial
    • Calculadora de salario

0

338
Vistas
Error [ERR_REQUIRE_ESM]: no se admite require() del módulo ES

Estoy tratando de hacer un bot de Discord que solo diga si alguien está en línea en el juego.

Sin embargo, sigo recibiendo este mensaje:

[ERR_REQUIRE_ESM]: require() del módulo ES no compatible. En su lugar, cambie el requerimiento de index.js en... a una importación dinámica () que está disponible en todos los módulos de CommonJS.

Este es mi código:

 module.exports = { name: 'username', description: "this is the username command", async execute(message, args) { const fetch = require('node-fetch'); if (args.length !== 1) { return message.channel.send("invalid username wtf") } const ign = args[0] if (ign.length > 16 || ign.length < 3) { return message.channel.send("invalid username wtf") } const uuid = await fetch(`https://api.mojang.com/users/profiles/minecraft/${ign}`).then(data => data.json()).then(data => data.id).catch(err => message.channel.send("error wtf")); const onlineInfo = await fetch(`https://api.hypixel.net/status?key=${john}&uuid=${uuid}`).then(data => data.json()); if (uuid.length !== 32) { return; } if (onlineinfo.success) { if (onlineinfo.session.online) { message.channel.send("they are online") } else { message.channel.send("they are offline") } } else { message.channel.send("hypixel api bad wtf") } } }

Este es mi archivo package.json :

 { "name": "discordbot", "version": "1.0.0", "main": "main.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1", "start": "node main.js" }, "author": "", "license": "ISC", "description": "", "dependencies": { "discord.js": "^13.0.1", "node-fetch": "^3.0.0" } }
over 3 years ago · Santiago Trujillo
4 Respuestas
Responde la pregunta

0

node-fetch v3 recientemente dejó de admitir la forma require de importarlo a favor de los módulos ES. Deberá usar las importaciones de ESM ahora, como:

 import fetch from "node-fetch";

en la parte superior de su archivo.

over 3 years ago · Santiago Trujillo Denunciar

0

La última versión node-fetch no usa la sintaxis require() para importar el paquete. Debes ir a tu package.json y escribir

 { "type": "module", }

para usar la sintaxis de import e importar node-fetch , pero luego no puede usar require para ningún otro paquete que necesite para trabajar solo con la declaración de import .

O puede usar otros paquetes como Got o Axios que se pueden importar mediante la sintaxis require() .

over 3 years ago · Santiago Trujillo Denunciar

0

Me lo imaginé. Solo tuve que degradar node-fetch a 2.6.1, ya que las versiones superiores solo usan ESM, lo que provocó muchos errores.

over 3 years ago · Santiago Trujillo Denunciar

0

Simplemente reemplace require en la parte superior de su archivo con import .

 // const fetch = require('node-fetch'); import fetch from "node-fetch";

node-fetch v3 recientemente dejó de admitir la forma requerida de importarlo a favor de los módulos ES. Deberá utilizar las importaciones de ESM ahora.

O

Degradar node-fetch a 2.6.1, ya que las versiones superiores solo usan EMS.

over 3 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Nuestro proceso Comercial
Legal
Términos y condiciones Política de privacidad
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recomiéndame algunas ofertas
Necesito ayuda